﻿<template>
	<div class="car_360-container">
		<el-dialog v-model="isShowDialog" :title="props.title" :width="1300" draggable="">
			<el-form :model="ruleForm" ref="ruleFormRef" size="default" label-width="100px" :rules="rules">
				<el-row :gutter="35">
					<el-form-item v-show="false">
						<el-input v-model="ruleForm.id" />
					</el-form-item>

					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
						<el-form-item label="车型" prop="carid">
							<el-cascader filterable v-model="ruleForm.carTree" :options="car_carDropdownList"
								:props="props" @change="handleChangeCar" />

							<!-- <el-select clearable filterable v-model="ruleForm.carid" placeholder="请选择车型">
								<el-option v-for="(item, index) in car_carDropdownList" :key="index" :value="item.value"
									:label="item.label" />
							</el-select> -->

						</el-form-item>
					</el-col>


					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
						<el-form-item label="颜色分类" prop="xilieSubId">
							<el-cascader filterable v-model="ruleForm.xilieTree" :options="car_colorDropdown"
								:props="props" @change="handleChangeXiLie" />


						</el-form-item>
					</el-col>


					 <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
						<el-form-item label="colorName" prop="colorName">
							<el-input v-model="ruleForm.colorName" placeholder="请输入colorName" clearable />
						</el-form-item>
					</el-col>  

					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
						<el-form-item label="封面图" prop="coverurl">
							<img v-if="ruleForm.imageUrl" :src="ruleForm.imageUrl"
							style="width: 1100; height: 300; object-fit: contain" />
						</el-form-item>
					</el-col>


					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
						<el-form-item label="图片url" prop="imageUrl">
							<el-input v-model="ruleForm.imageUrl" placeholder="请输入imageUrl" clearable />

						</el-form-item>

					</el-col>



				</el-row>
			</el-form>
			<template #footer>
				<span class="dialog-footer">
					<el-button @click="cancel" size="default">取 消</el-button>
					<el-button type="primary" @click="submit" size="default">确 定</el-button>
				</span>
			</template>
		</el-dialog>
	</div>
</template>

<script lang="ts" setup>
import { ref, onMounted } from "vue";
import { ElMessage } from "element-plus";
import type { FormRules } from "element-plus";
import { addcar_360, updatecar_360 } from "/@/api/main/car_360";

import { getcar_carDropdown } from '/@/api/main/car_case';
import { getcar_colorDropdown } from '/@/api/main/car_case';
 
//父级传递来的参数
var props = defineProps({
	title: {
		type: String,
		default: "",
	},
});
//父级传递来的函数，用于回调
const emit = defineEmits(["reloadTable"]);
const ruleFormRef = ref();
const isShowDialog = ref(false);
const ruleForm = ref<any>({});
//自行添加其他规则
const rules = ref<FormRules>({
});

// 打开弹窗
const openDialog = (row: any) => {
	ruleForm.value = JSON.parse(JSON.stringify(row));

	ruleForm.value.carTree = ruleForm.value.carSubId
	ruleForm.value.xilieTree = ruleForm.value.colorId

  console.log(	ruleForm.value)

	isShowDialog.value = true;
};

// 关闭弹窗
const closeDialog = () => {
	emit("reloadTable");
	isShowDialog.value = false;
};

// 取消
const cancel = () => {
	isShowDialog.value = false;
};

// 提交
const submit = async () => {
	ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
		if (isValid) {

			if (ruleForm.value.carTree.length > 1) {
				ruleForm.value.carId = ruleForm.value.carTree[0]
				ruleForm.value.carSubId = ruleForm.value.carTree[1]
			}
			if (ruleForm.value.xilieTree.length > 1) {
				ruleForm.value.xilieId = ruleForm.value.xilieTree[0]
				ruleForm.value.colorId = ruleForm.value.xilieTree[1]
			}

		
			let values = ruleForm.value;
			if (ruleForm.value.id != undefined && ruleForm.value.id > 0) {
				await updatecar_360(values);
			} else {
				ruleForm.value.xilieName="";
				ruleForm.value.colorName=""
					ruleForm.value.clickCount=0
				await addcar_360(values);
			}
			closeDialog();
		} else {
			ElMessage({
				message: `表单有${Object.keys(fields).length}处验证失败，请修改后再提交`,
				type: "error",
			});
		}
	});
};


const car_colorDropdown = ref<any>([]);
const getcar_colorDropdownList = async () => {
	let list = await getcar_colorDropdown();
	car_colorDropdown.value = list.data.result ?? [];
};
getcar_colorDropdownList();


const car_carDropdownList = ref<any>([]);
const getcar_carDropdownList = async () => {
	let list = await getcar_carDropdown();
	car_carDropdownList.value = list.data.result ?? [];
};
getcar_carDropdownList();


// 页面加载时
onMounted(async () => {
});

//将属性或者函数暴露给父组件
defineExpose({ openDialog });
</script>
